package br.usjt.mazerobot.commons.constante;


public enum IdentificadorPacote {

    //=================  COMUM ( -128 à -28) ===================================
    CELULA ((byte)-128),
    CONFIRMA_VOLTA_PARA_INICIO((byte)-127),
    FIM_SEQUENCIA_DE_PACOTES((byte)-126),

    //===================== PC para o robo (-27 à 50) ==========================
    PAUSAR_EXECUCAO ((byte)-27),
    CONTINUAR_EXECUCAO((byte) -26),
    MODO_DE_OPERACAO_ENCONTRAR_OBJETIVO ((byte) -25),
    MODO_DE_OPERACAO_MAPEAMENTO_COMPLETO((byte) -24),
    ENCERRAR_MODO_DE_OPERACAO((byte) -23),
    OBJETIVO((byte)-22),

    SINAL_BLUETOOTH((byte) -21),

    //====================== ROBO para o PC(51 à 127) ==========================
    AVISO_BATERIA_FRACA((byte) 51),
    AVISO_OBJETIVO_NAO_ENCONTRADO((byte) 52),
    AVISO_MAPEAMENTO_FINALIZADO((byte) 53),

    LOG((byte) 99);

    //==========================================================================
    private byte codigo;

    private IdentificadorPacote(byte codigo) {
        this.codigo = codigo;
    }

    public byte getCodigo() {
        return codigo;
    }

    public void setCodigo(byte codigo) {
        this.codigo = codigo;
    }

    public static IdentificadorPacote fromValue(byte codigo) {

        for (IdentificadorPacote id : IdentificadorPacote.values()) {
            if (id.getCodigo() == codigo) {
                return id;
            }
        }
        throw new IllegalArgumentException("Não Existe");

    }

}
